<?php

namespace app\index\service;

use app\common\service\BaseService;
use app\index\model\Test;
use think\facade\Db;

/**
 * Test逻辑
 * Class TestService
 * @package app\index\service
 */
class TestService extends BaseService
{

    /**
     * @notes 获取列表
     * @param array $params
     * @param array $page
     * @return array
     */
    public function getTestLists(array $params, array $page)
    {
        // 自定义查询条件
        $filler = [];

        // 查询列表
        $result = Test::where($filler)->paginate([
            'page' => $page['page'],
            'list_rows' => $page['size'],
        ]);

        return $result->toArray();
    }


    /**
     * @notes 添加
     * @param $params
     * @return bool
     */
    public function addTest($params): bool
    {
        // 启动事务
        Db::startTrans();
        try {
            //添加数据
            Test::create($params);
            // 提交事务
            Db::commit();
            return true;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            $this->setError($e->getMessage());
            return false;
        }
    }


    /**
     * @notes 编辑
     * @param $params
     * @return bool
     */
    public function editTest($params): bool
    {
        // 启动事务
        Db::startTrans();
        try {
            //更新数据
            Test::update($params);
            // 提交事务
            Db::commit();
            return true;
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
            $this->setError($e->getMessage());
            return false;
        }
    }


    /**
     * @notes 详情
     * @param int $id
     * @return Test|array|mixed|\think\Model
     */
    public function getTestDetail(int $id)
    {
        return Test::findOrEmpty($id);
    }


    /**
     * @notes 删除
     * @param int $id
     * @return bool
     */
    public function delTest(int $id): bool
    {
        return Test::destroy($id);
    }


}